/**
 * @description 定义common模块，进行导出
 */

// actions定义
const actions = {
    // 把处理后的数据提交到mutation中去进行数据更新，接收数据，所以就有两个形参
    tokenAct(_store, _data) {
        Promise.resolve().then(() => {
            // 为什么这里不需要加模块名字
            _store.commit('setToken', 'TOKEN - ' + _data)
        })
    }
}

export default {
    // 开启命名空间
    namespaced: true,

    // 四大核心配置
    state: {
        // 通用票据 -- 解决http无状态使用的一个凭证
        token: ''
    },

    getters: {
        // getter方法要获取到state的值，才能返回state值，所以方法必须有一个state形参
        getToken(_state) {
            return _state.token
        }
    },

    actions,

    mutations: {
        // 给state数据赋值，就需要接收数据，那么就需要两个形参
        setToken(_state, _token) {
            _state.token = _token
        }
    }
}